package Colecciones;

import Modelo.EjecutaConsulta;
import Modelo.Fila;
import java.io.PrintStream;

public class descriptores
{
  public static Fila getCiudad(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT C.CODIGO, C.NOMBRE NOMBRE, C.DEP_CODIGO ,C.NOMBRE||','||T.DESCR||','||C.DESCR CIUDAD FROM PS_PUJ_CIUDADES c, PS_STATE_NAMES_TBL t,     PS_COUNTRYTBL_LANG c WHERE C.DEP_CODIGO= T.STATE AND T.COUNTRY= C.COUNTRY AND C.CODIGO = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getCiudad " + e.toString());
    }

    return datos;
  }

  public static Fila getCodigosPaisDeptoCiudad(String p_pais, String p_depto, String p_ciudad)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT A.COUNTRY PAIS, B.STATE DEPTO, C.CODIGO CIUDAD  FROM PS_PUJ_CIUDADES C,PS_STATE_NAMES_TBL B,ps_country_tbl A  WHERE B.COUNTRY = A.COUNTRY  AND   B.STATE = C.DEP_CODIGO  AND   DESCRIPTORES.QUITAR_TILDES(A.DESCR) LIKE DESCRIPTORES.QUITAR_TILDES('%" + p_pais + "%')" + " AND   DESCRIPTORES.QUITAR_TILDES(B.DESCR) LIKE DESCRIPTORES.QUITAR_TILDES('%" + p_depto + "%')" + " AND   DESCRIPTORES.QUITAR_TILDES(C.NOMBRE) LIKE DESCRIPTORES.QUITAR_TILDES('%" + p_ciudad + "%')";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getCodigosPaisDeptoCiudad " + e.toString());
    }

    return datos;
  }

  public static Fila getBarrio(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT CODIGO, DESCRIPCION nombre  FROM PS_PUJ_BARRIOS  WHERE CODIGO = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getBarrio " + e.toString());
    }

    return datos;
  }

  public static Fila getTiposDocumento(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT NATIONAL_ID_TYPE TIPO, DESCR DESCRIPCION FROM PS_NID_TYPE_TBL  WHERE NATIONAL_ID_TYPE = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getTiposDocumwento " + e.toString());
    }

    return datos;
  }

  public static Fila getCarrera(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT A.ACAD_PROG, A.DESCR DESCRIPCION  FROM PS_ACAD_PROG_TBL A  WHERE A.EFF_STATUS ='A'  AND A.EFFDT =(SELECT MAX(B.EFFDT)   FROM PS_ACAD_PROG_TBL B  WHERE A.ACAD_CAREER=B.ACAD_CAREER  AND   A.ACAD_PROG = B.ACAD_PROG  AND   A.INSTITUTION = B.INSTITUTION  AND   B.EFFDT<=SYSDATE)  AND A.ACAD_PROG = '" + p_codigo + "'";

      System.out.println(consulta);
      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getCarrera " + e.toString());
    }

    return datos;
  }

  public static Fila getInstitucion(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT EX.EXT_ORG_ID CODIGO, EX.DESCR50 DESCRIPCION FROM PS_EXT_ORG_TBL EX  WHERE EX.EXT_ORG_ID='" + p_codigo + "'" + " AND   EX.EFF_STATUS='A' " + " AND   EX.EFFDT = (SELECT MAX(EX2.EFFDT) " + " FROM PS_EXT_ORG_TBL EX2 " + " WHERE EX.EXT_ORG_ID =EX2.EXT_ORG_ID " + " AND   EX.EXT_ORG_TYPE=EX2.EXT_ORG_TYPE " + " AND   EX.LS_SCHOOL_TYPE=EX2.LS_SCHOOL_TYPE " + " AND   EX2.EFFDT<=SYSDATE) ";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getInstitucion " + e.toString());
    }

    return datos;
  }

  public static Fila getTituloAcademico(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT DEGREE CODIGO, DESCRFORMAL TITULO  FROM PS_DEGREE_TBL A  WHERE A.EFF_STATUS='A'  AND  A.EFFDT = (SELECT MAX(B.EFFDT)  FROM PS_DEGREE_TBL B  WHERE A.DEGREE = B.DEGREE  AND   B.EFFDT <= SYSDATE)  AND DEGREE = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getTituloAcademico " + e.toString());
    }

    return datos;
  }

  public static Fila getAnnoInscripcion()
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT T.ACAD_YEAR FROM PS_PUJ_PARAMETROS p,PS_TERM_TBL t WHERE T.INSTITUTION='PUJCL'  AND T.ACAD_CAREER='UGRD'  AND T.STRM = P.DESCR200 AND P.CODIGO=5 ";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getAnnoInscripcion " + e.toString());
    }

    return datos;
  }

  public static Fila getOtroDato(String p_nombre_campo, String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = " SELECT FIELDVALUE CODIGO ,XLATLONGNAME TIPO  FROM XLATTABLE  WHERE FIELDNAME='" + p_nombre_campo + "' " + " AND LANGUAGE_CD='ESP' " + " AND EFF_STATUS='A'" + " AND FIELDVALUE = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getOtroDato " + e.toString());
    }

    return datos;
  }

  public static Fila getIdioma(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = "SELECT ACCOMPLISHMENT  CODIGO , DESCR IDIOMA FROM PS_ACCOMP_TBL  WHERE ACCOMP_CATEGORY='LNG' AND   ACCOMPLISHMENT  = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getIdiomas " + e.toString());
    }

    return datos;
  }

  public static Fila getEPS(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = "SELECT ACCOMPLISHMENT CODIGO, DESCR DESC_EPS FROM PS_ACCOMP_TBL  WHERE ACCOMP_CATEGORY='MEM' AND   ACCOMPLISHMENT  = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getEPS " + e.toString());
    }

    return datos;
  }

  public static Fila getConvenio(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = "SELECT CODIGO, DESCRIPCION CONVENIO FROM PS_PUJ_CONVENIOS  WHERE CODIGO = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getConvenio " + e.toString());
    }

    return datos;
  }

  public static Fila getActividad(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      String consulta = "SELECT CODIGO, NOMBRE ACTIVIDAD FROM ACTIVIDADES  WHERE CODIGO = '" + p_codigo + "'";

      datos = EjecutaConsulta.Ejecutar2(consulta);
    } catch (Exception e) {
      System.out.println("Error: en la consulta de descriptores.getConvenio " + e.toString());
    }

    return datos;
  }

  public static Fila getGradoAcademico(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      if (p_codigo.equals("UGRD")) {
        datos.adicionar("CODIGO", p_codigo);
        datos.adicionar("DESCRIPCION", "Pregrado");
      }
      else if (p_codigo.equals("GRAD")) {
        datos.adicionar("CODIGO", p_codigo);
        datos.adicionar("DESCRIPCION", "Posgrado");
      }
    }
    catch (Exception e)
    {
      System.out.println("Error: en la consulta de descriptores.getGradoAcademico " + e.toString());
    }

    return datos;
  }

  public static Fila getGenero(String p_codigo)
  {
    Fila datos = new Fila();
    try
    {
      if (p_codigo.equals("M")) {
        datos.adicionar("CODIGO", p_codigo);
        datos.adicionar("DESCRIPCION", "Masculino");
      }
      else if (p_codigo.equals("F")) {
        datos.adicionar("CODIGO", p_codigo);
        datos.adicionar("DESCRIPCION", "Femenino");
      }
      else if (p_codigo.equals("U")) {
        datos.adicionar("CODIGO", p_codigo);
        datos.adicionar("DESCRIPCION", "Desconocido");
      }

    }
    catch (Exception e)
    {
      System.out.println("Error: en la consulta de descriptores.getGenero " + e.toString());
    }

    return datos; }

  public static void main(String[] args) {
    Modelo.Path.ruta = "";
    try
    {
      System.out.println(datosPersonales.getEmailPreferido("0014414"));
      System.out.println(datosPersonales.getDocumentoActual("0014414"));
      System.out.println(datosPersonales.getEmplidByDocumento("16796985"));
    } catch (Exception e) {
      System.out.println("errro " + e.getMessage());
    }
  }
}